Watermark-based dynamic ad insertion

ABSTRACT

A watermark-based dynamic ad insertion (DAI) technique for presenting different users of content different advertisements based on the user&#39;s profile for content viewed on broadcast channels or in multichannel video programming distributor (MVPD) channels. A number of solutions issues with watermark-based DAI are presented. Interoperability is addressed by providing a multiplexing technique so that the DAI watermarks do not interfere with other watermarks, such as ATSC 3.0 watermarks. Reliability is addressed by providing a matched filtering technique. Security is addressed by providing a mutual authentication technique.

FIELD OF INVENTION

The present invention generally relates to the field of content distribution. More particularly, the disclosed embodiments relate to dynamic ad insertion in broadcast content.

BACKGROUND

This section is intended to provide a background or context to the disclosed embodiments that are recited in the claims. The description herein may include concepts that could be pursued but are not necessarily ones that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, what is described in this section is not prior art to the description and claims in this application and is not admitted to be prior art by inclusion in this section.

Dynamic ad insertion (DAI) is a technique for presenting different users of content different advertisements based on the user's profile for content. DAI has been widely adopted in Over-the-Top (OTT) media consumption. For content viewed on broadcast channels or in multichannel video programming distributor (MVPD) channels DAI has not been generally available.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows test results indicating reliability for embodiments of the invention.

FIG. 2 illustrating the swapping of publisher data paths in accordance with an embodiment of the invention.

FIG. 3 illustrates the watermark payload in accordance with an embodiment of the invention.

FIG. 4 illustrates a block diagram of a device that can be used for implementing various disclosed embodiments.

SUMMARY OF THE INVENTION

This section is intended to provide a summary of certain exemplary embodiments and is not intended to limit the scope of the embodiments that are disclosed in this application.

Disclosed embodiments relate to a method of facilitating dynamic ad insertion in content. The method includes assigning a default ad an identifying number, wherein the default ad is inserted into programming content at a splicing location in the programming content and linking the identifying number to a replacement ad. A watermark payload is generated which includes the identifying number. The watermark payload is embedded in the content and the content is broadcast to a client device. The client device detects the embedded watermark payload in the content and a replacement ad associated with the identifying number is inserted at the splicing location in the programming content.

These and other advantages and features of disclosed embodiments, together with the organization and manner of operation thereof, will become apparent from the following detailed description when taken in conjunction with the accompanying drawings.

DETAILED DESCRIPTION OF CERTAIN EMBODIMENTS

In the following description, for purposes of explanation and not limitation, details and descriptions are set forth in order to provide a thorough understanding of the disclosed embodiments. However, it will be apparent to those skilled in the art that the present invention may be practiced in other embodiments that depart from these details and descriptions.

Additionally, in the subject description, the word “exemplary” is used to mean serving as an example, instance, or illustration. Any embodiment or design described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments or designs. Rather, use of the word exemplary is intended to present concepts in a concrete manner.

BACKGROUND

Dynamic Ad Insertion (DAI), also known as Targeted Advertisement (TA), is the technique where different users see different ads based on their interests, location, age, gender, etc. or generally based on profile created in view of user's input to a device over time and other data in public domain. DAI is expected to increase likelihood that the user will engage with the message and ultimately make the purchase. DAI is well established in Over-The-Top (OTT) media consumption, but it is not yet available on broadcast channels or in multichannel video programming distributor (MVPD) channels. It should be noted that there are techniques that allow ad insertion by different participants in content distribution chain, such as that described in SCTE 35 standard (https://www.scte.org/SCTEDocs/Standards/ANSI_SCTE%2035%202019r1.pdf), but it requires delivery of metadata used to identify advertisement breaks, advertising content, and programing content, and this metadata is currently not delivered to the end user, in particular if end user receives the content over HDMI link.

In order to enable delivery of metadata to the end user ATSC 3.0 standard has introduced digital watermarks in both audio (https://www.atsc.org/atsc-30-standard/a3342016-audio-watermark-emission) and video (https://www.atsc.org/wp-contentuploads/2016/09/A335-2016-Video-Watermark-Emission-4.pdf) component of multimedia broadcasts. This disclosure addresses issues related to DAI based on watermarks and proposes solutions to those issues. For additional details related to the use of watermarks for DAI see: U.S. Pat. Nos. 9,602,891; 9,942,602; and 10, 354,354; as well as US patent applications US 20140074855 and 20190132652. The contents of the above patents and patent applications are hereby incorporated by reference.

Constraints

Typically, advertisement slots in broadcast content are all filled in, even if some of them are replaceable. Replaceable ads are usually called “default ads” and they are shown to the user if DAI fails to activate. However, if DAI is active it is important that there is no bleeding through of default ad to the end user (partial presentation of the default ad), which would be confusing and perhaps annoying. It is also important that replacement ad ends in time and does not step on programing content.

One particular concern is that during live broadcasts the timing of advertising breaks is not known in advance and can be triggered at any time. However, even in distribution channels with full metadata available it may not be possible to splice in an ad instantaneously. For example, SCTE 35 standard recommends that the splicing points are announced at least 4 seconds in advance in live broadcasts (for both network-out and network-in splice points).

It is desirable that most of default ads are replaced with a targeted ad, but failure to activate DAI is not considered confusing or annoying to end user.

On the other hand, if user initiates an action on an upstream device from the TV set, e.g. on a Set Top Box (STB) or Digital Video Recorder (DVR), such as channel change, pause, speed change (forward/back, fast/slow), skip (forward/back), volume change, user guide or other user interface overlay display, etc. it is important that user sees an effect of his action. It is unacceptable to leave user thinking that STB is malfunctioning or even that it is too slow to react to users' input.

Once the DAI technique is in place it is desirable that ad replacement is done in controlled manner, in agreement with content publisher and content distributors. Rogue players may try to replace default ads with their own targeted ads which would deny ad revenue to content owners and/or content distributors. So, it is desirable to prevent unlicensed users to access the metadata, and in particular to access the timing of ad breaks. It is well known to those skilled in the art that the encryption can be used to prevent unauthorized access to information. Yet in the case of DAI the encryption alone may not be enough, and in some scenarios simply detection of the placement of encrypted messages may be used to thwart the system. Also, proper encryption of short messages is not trivial, and it is desirable to use well tested encryption systems.

It should be also noted that watermarking has been proposed and used for many other purposes besides DAI, such as usage measurement, second screen communication etc. In particular ATSC 3.0 watermarking has been introduced for interactivity such as audio replacement, emergency alert, dynamic events etc. It is therefore important that watermarks used for DAI do not interfere with other watermark uses. In particular if DAI uses the watermarks specified by ATSC 3.0, they need to be multiplexed in a controlled manner with other watermarks. For procedural simplicity it would be preferred, if possible, to achieve coexistence of DAI watermarks with other ATSC watermarks without changing ATSC specifications.

Proposed Solutions

In this disclosure we will consider ATSC watermark-based DAI, because ATSC watermarks are public, well tested and available under RAND conditions. However, the proposed solutions could be used with other watermarking systems as well. We will consider usage of either audio or video watermarks, or both of them simultaneously. It is well known that ATSC audio watermarks have much smaller throughput (amount of information per unit time) than video watermarks, while video watermarks have disadvantage of being perceptible on some TV sets, and they are easier to remove or forge.

In order to execute DAI, the receiver needs first to identify the channel that is presented as well as the address of a server associated with the detected channel, which supports DAI. Those objectives can be achieved with either audio or video ATSC watermarks, as specified by ATSC, and it will not be explained here. Typically, this is achieved well ahead of moment of ad replacement, with enough time to communicate user profile, device capabilities such as support for various video resolution, audio and video compression techniques, file formats, available memory, availability of multiple decoders, latency involved when repurposing decoders etc. Based on this information the DAI decisioning server would select appropriate replacement ads, perhaps concatenate them and deliver them to TV set, or generally to the terminal device.

What is left to do is to inform device about exact timing of the ad insertion for each replacement ad. In some scenarios, when ad insertion point is known well in advance, it could be also communicated over the broadband, and the device could be instructed to use one of many timing systems to time ad insertion precisely. It is desirable for DAI system to work also in time-shift scenarios, when the broadcast is recorded for later viewing. So, the first step is to establish the media time and then to specify the insertion moment on the media timeline. The media time can be established using either fingerprinting or watermarking, which is well known to those skilled in the art, and thus will not be described here.

Watermark Payload Considerations

In the case of live broadcast, the timing of ad insertion is known only a short time before the DAI execution, and device may not be able to get this information over the broadband quickly enough. Furthermore, having a large number of devices attempting to get timing information simultaneously would increase web congestion and increase likelihood of failing to get the information in time. One possible solution is to use video watermarks to mark default ads. In the case of multiple default ads each one should be marked differently in order to find proper replacement ads for them, e.g. to match them by duration. For example, each instance of a default ad can be assigned a different identifying number (e.g. random, sequential or otherwise determined) and this number can be included as part of the watermark payload. Those identifying numbers can be linked to replacement ads when the replacement ads are fetched to device memory. When a watermark carrying a particular identifying number is detected the replacement ad associated with this number should be inserted into the presentation.

It should be noted that video watermarks can get distorted in distribution channel or video recording devices due to transcoding, picture resolution reduction, frame rate changes, high motion and/or high entropy content, etc. In the case where video watermark is distorted the video watermark detector can choose to link the detected watermark with a particular ad even if the extracted identifying number doesn't match perfectly the identifying number received over the broadband. The detector can count the bit mismatches between the extracted identifying number and the expected identifying number, and if the count is below a threshold it could initiate the DA. This approach is similar to adding error correction to the watermark payload. It is particularly effective—offering lower likelihood of false, erroneous and missed detections than other error correction techniques—if the identifying numbers are determined such that each instance is statistically independent and uncorrelated from others; e.g. via a random, pseudorandom, or cryptographic techniques.

For example, the embedded watermark can contain owner ID, channel ID, and/or non-random ad ID, which are encrypted and placed as portion or as entire watermark payload. If this identifier is pre-fetched over broadband or if the unencrypted data fields are delivered to the TV and encrypted using the same key used for encrypting them in the watermark payload, the detector can similarly do bit mismatch counting, and initiate DAI if the count is below a threshold. In the above scenario it is important that the watermark in the first frame of the default ad is detected. If the replace ad is not started with the first frame the default ad would bleed through creating significant artefact. The first frame watermark could be lost because of various processing in the distribution channel as discussed above. Besides, if ATSC 3.0 video watermarks are inserted by the broadcast station they could interfere with watermarks that are inserted upstream from the station. Note that some ATSC 3.0 video watermarks have very precise timing requirement, which may make them interfere exactly with the first frame watermarks.

One way to mitigate issues listed above is to put a few black frames at the beginning of the default ad. If the first frame watermark is missed for whatever reason, this would cause black frames to bleed through, which is not going to surprise users as even now many transitions from one ad to another are including a few black frames in between. We have found also experimentally that ATSC video watermarks embedded in black frames are more robust to various distortions than those embedded in regular content, in view that black frames have a very low entropy.

The information about the count of black frames that are leading into default ad can also be pre-fetched, so that the terminal device has advanced knowledge how long is the time interval where the starting DAI is safe. In the case when DAI is started later than ideal it is important to finish inserted ad on time, and not to step on programing content. To prevent this, the default ads should carry watermarks with information when the programing content will return (network-in information). Note that if inserted ad is slightly shorter than the default ad, the terminal device should pad inserted ad with black frames to prevent bleed through of the default ad.

Another way to mitigate issues listed above is to send multiple video watermarks ahead of the splicing point, each of them carrying information about timing of the splice point, in addition to the ad ID. For example, the timing of the splicing point can be expressed as number of video frames between the marked frame and the start of the default ad. Alternatively the timing information could be expressed as a count of a predefined timing unit, say as a number of 10 ms intervals, from the watermarked frame to the insertion point. Alternately, the timing information could be expressed as a time value on a reference timeline that is known by other means, such as through other video watermark messages, audio watermark messages, audio or video fingerprinting systems, or metadata transmitted together with the programming content. Redundant watermarking reduces the risk that the mark will be missed, and allows a flexible selection of which frame needs to carry the timing information. Furthermore, the timing information can be protected using error correction codes that are well known to those skilled in the art.

One way to insert advanced information about pending default ads is to put non-replaceable ads in front of default ads, and during non-replaceable ads send the timing info and replacement ad ID for all default ads. Of course, it is possible to insert advanced information about pending default ad in the program content itself. The 4 second lead time between the decision to allow DAI and the start of the DAI slot, as specified in SCTE 35 standard, leaves plenty of room for redundant delivery of multiple replacement ad IDs and their timing information.

It should be noted that the an ad ID and timing information represent relatively small payload which could easily fit the user_private_message( ) specified by ATSC in https://www.atsc.org/wn-content/uploads/2017/03/A336-2017-Content-Recovery-in-Redistribution-Scenarios-1.pdf. For example, ad ID can be 72 bit long and timing info in the form of 10 ms counts can be 16 bit long, but protected using error correction code BCH(63,16,11) with one bit reserved. This could be placed into 136-bit payload of user_private_message( ).

As mentioned above the ATSC audio watermarks have much smaller throughput than video watermarks, and they don't have specified general-purpose payloads. Yet they can also be used as a vehicle to carry replacement ad IDs and their timing information for the advanced notification about pending default ads. A possible approach is to allow audio watermark embedder to modify scramble sequence used in standard ATSC payloads so that standard audio watermark detector would fail to extract embedded payload. Modified scramble sequence should be delivered over the broadband together with other DAI related information according to standard web protocols. Once this modified scramble sequence is received the audio watermark detector should attempt decoding subsequent payloads with both standard and modified sequence for a predefined period of time, or until detection of watermark segment end. When a payload is detected with the modified scramble sequence, the detector will understand that it contains replacement ad ID and time to default ad start. For example, the replacement ad ID can be 34-bit ad ID and time to default ad start can be 16-bit counter of 10 ms intervals.

Having in mind relative strengths and weaknesses of audio and video watermarking technologies it is possible to combine them so that audio watermarks are used to identify the broadcast channel and address of the server associated with broadcast channel which is designated to support DAI, while video watermarks are used to carry replacement ad ID and timing information.

Security Considerations

The main security objective is to prevent a foreign ad replacement application to read embedded watermarks and discover start time and duration of replaceable ads. In order to achieve this, it is desirable that DAI client in the terminal device and DAI decisioning servers should perform mutual authentication based on Transport Layer Security (TLS) protocol. The DAI clients should receive DAI instructions only from authenticated DAI decisioning servers, and DAI decisioning servers should provide DAI instructions only to authenticated DAI clients. Compromised certificates could be revoked using Online Certificate Status Protocol (OCSP)

Clearly if only default ads are marked with video watermarks it would be easy to identify marked frames and replace them. Similarly, if default ads are marked with video watermarks with distinct properties, such as distinct frame structure, it would be unsecure. Therefore, it is desirable to embed watermarks in advance of default ads, as proposed above.

It is important that the proposed 16-bit timer is not easy to extract and use to identify the start time of the default ad. For example, in the case of video watermarks based on the user_private_message( ) specified by ATSC described above, this timer is protected by BCH(63,16,11) with one bit reserved. After that it can be scrambled with one-time scrambling pattern 64-bit long, that is securely delivered to an authenticated DAI app during delivery of other DAI related information over the broadband. Since this is one-time pattern associated with a particular replacement ad, reverse engineering of (e.g. by measuring actual time between the watermark and the replacement start) it is not going to help with other DAI instances. Similarly, the audio watermarks are scrambled with 127-bit long modified scramble sequence that is unique for a particular default ad.

The insertion end point, or default ad duration, could be specified with respect to the default ad start and pre-fetched over the broadband. Presumably the inventory decisioning logic will select replacement ads that closely fit the duration of the default ads. Alternatively, the end of the default ad could be specified using a timer embedded during the default ad in a manner similar to that described for the timer used to specify the start of the default ad as descried above.

In order to further frustrate a determined attacker, it is possible to introduce a decoy watermark messages that would use ad IDs and time stamps that are actually not associated with any replacement ads, and approved DAI app will simply discard those because the ad ID will not match any of the replacement ads that are pre-fetched.

Upstream User Action Detection

One of the issues listed above is to detect user action on a device upstream from TV set, such as STB or DVR and act accordingly. One of the objectives could be that DAI application matches the user selection, such as pause, speed change, skip, or volume change. Another option is to abandon DAI whenever upstream user action is detected, and to return to default ad. Presumably the default ad will exhibit results of the user action too. The third option is to make user aware that the current presentation is coming from DAI app, and if user want to execute action on an upstream device it is necessary to first exit the current presentation. Any of these options would prevent user to suspect a malfunctioning of the upstream device.

Detection of many common changes to the presentation of the default ad by the upstream device can be determined using “loss of continued watermark detection” as an indicator. For this reason, it is beneficial that the default ad contains watermarks throughout their duration and that the TV use their continued detection (or lack thereof) as an indicator of continued receipt. For this reason, continued application of the watermark transmission and detection techniques described above for the duration of the default ad presentation is beneficial.

Our research shows that ATSC video watermarks can reliably detect upstream pause, speed change, or skip and could approximately determine speed change or skip size as long as the default ads are embedded with a string of video watermarks with a payload that includes timing information, say time from the beginning of the default ad. Therefore, the ATSC video watermarks can be used to adjust the timing of the DAI presentation to in correspondence to timing changes in the upstream content. If the adjustments of DAI presentation are made it would be desirable to inform user of the adjustment made using a partial overlay message. For example, if fast-forward is detected at 2× rate the replacement ad should be fast forwarded at 2× and an overlay should inform user that 2× playback is executed.

Our research also shows that certain upstream user actions, such as channel changes, pause, speed change and skip can be identified by a brief digital silence interval. Note that audio watermarks can cover digital silence intervals preexisting in native audio as disclosed in U.S. Pat. No. 9,805,434. Therefore, digital silence gaps can be used to trigger the end of DAI and return to default ad or whatever new channel user is selecting.

Our research further shows that volume change request sent to STB or DVR is most of time not actually executed on upstream device, but rather it is communicated to the actual audio rendering device such as TV set. In this case the TV set will get audio volume information and could pass it to DAI ap. However, it is also possible to do a real time audio loudness measurement and adjust DAI loudness accordingly.

Some user actions may cause partial screen overlay that could be masked in the case of DAI. For example, the user may expect volume control overlay when trying to adjust volume. Similarly, menu selection on upstream device may trigger picture-in-picture with menu options. Even external event such as a phone call may create an overlay with the caller ID, which could be masked in the case of DA. One of the solutions for those cases is, of course, to have user be aware that they are watching web-based content, and that it needs to exit it in order to return to desired screen. Examples of such solutions include display of a graphic icon or informative text superimposed on the inserted advertisement by the TV or illumination of an indicator on another visible location (e.g. TV frame or remote control).

Yet another solution is to have a screen state detection logic that would detect such overlays and terminate DAI automatically. Our research shows that every device, such as STB or DVR, has a limited set of display overlay options, and that they can be identified in advance and that their templates can be stored on the web servers. Any device could download those templates and try to detect them on the screen by correlating specific portions of the screen with the templates. If the correlation is above a threshold, the overlay detection is declared and DAI can be modified (e.g. by conforming, skipping, or terminating the presentation).

Yet another solution is to compare video fingerprints which are extracted upstream of the STB to video fingerprints extracted in the TV. Differences between the two fingerprints can be attributed to video modification by the STB and overlay detection is declared and the DAI can be modified (e.g. by conforming, skipping, or terminating the presentation).

The above proposed solutions can be combined in various ways. For example, if audio gap is detected, the device may delay taking down the replacement ad while video watermark detector tries to interpret user action and adjust DAI accordingly. But if those attempts fail within a predefined time interval, the replacement ad should be taken down.

Similarly, the user should be informed that the current presentation is coming from a DAI app in parallel with attempts to detect screen overlays and automatic DAI termination, so that if screen overlay detection fails the user has the option of manually exiting the replacement ad.

Watermarking Approach

The watermarking approach disclosed herein emphasizes three capabilities: 1) ATSC Interoperability; 2) reliability; and 3) security. Interoperability means that there is interoperability with other uses of the ATSC A/335 and A/336 specifications, including the use of A/336 framing including message header and CRC. This approach also permits multiplexing of Project OAR (OAR) (https://projectoar.org/) and ATSC messages. Thus, ATSC and OAR watermark message protocols will be non-interfering and broadcasters will be able to send watermark messages to both OAR and ATSC clients at the same time. Likewise, OAR TVs and ATSC TVs will both be able to receive the broadcast and operate correctly. This approach enables the option of cleartext transmission of timestamps in OAR payloads.

In more detail, OAR messages use the extensibility method defined in A/336 for introducing new watermark message formats. OAR defines a message format using with the A/336 extensibility approach and requests that ATSC add it to their registry. This allows any TV to distinguish OAR and ATSC messages.

It is also desirable for OAR to: (a) permit safe launch frames to be announced/identified so that launch success is not dependent on a single frame (also providing a reliability benefit); (b) allow multiplexing OAR with other messages during default ads; and (c) enable joint ATSC/OAR usage of timestamps.

Regarding reliability, it is noted that a weak error correction/detection scheme will cause watermark failures. Low-bitrate coding and high motion video will cause intermittent watermark loss and high motion video can cause continuous watermark degradation (not just sporadic). This will cause insertion opportunities to be missed, failed timeline tracking, or erroneous DAI termination. To address these issues, the present disclosure enables matched filtering of payloads with advanced error correction and supports marked pre-roll. The present disclosure recognizes that matched filtering is far superior to Single Error Correction Double Error Detection (SECDED). Matched filtering is a provably optimal method for detecting a known signal and is guaranteed to outperform error correction/detection schemes like SECDED/BCH/Reed-Solomon, while also being much simpler. These other techniques are only needed when the reader doesn't know the message being transmitted

Also, matched filtering is easily introduced into the OAR architecture via decision server response. It is sufficient to include the watermark message in the decision server response (or enough info for client to synthesize it). Separation of static (avail description) and dynamic (timecode) data may be beneficial. Note that most “watermark fields” don't have to be in the watermark; avail ID and timecode are the only essential ones.

To illustrate how payload architecture impacts reliability, FIG. 1 shows comparative testing of different approaches. During these tests, performance of a sample implementation was measured across a variety of payload encoding methods. Scene Change frames are typically encoded as I-frames and enable more reliable watermark recovery. Reliable recovery of all frames is necessary for low-latency trick-play tracking.

Regarding security, it is desirable that security is preserved by ensuring that a watermark cannot be interpreted without decision response and decryption keys. Since key management is complex and costly, the present disclosure uses mutual authentication as an alternative to KMS. In more detail, TVs are provisioned by OAR operator with a unique client certificate tied into OAR PKI. Decisioning servers provide decisioning responses only to authenticated TVs. Decision responses contain all watermark fields; watermarks carry very limited information. Compromised certificates can be revoked using Online Certificate Status Protocol (OCSP). This eliminates the need for symmetric key distribution (requires certificate distribution only). It is noted that mutual authentication protocol impacts decisioning server operation and that certificate management and device provisioning are still required. Process development and effort is required to detect, revoke compromised certificates.

In accordance with one embodiment of the present disclosure, an important feature is to swap the publisher data paths. See FIG. 2. This involves swapping the publisher outputs, so the encrypted message is in the Decision Response and the payload is in the watermark message. The encrypted message is sent in the Decision Response. Payload in encrypted message has increased size and can be a list (wildcard support not recommended), and run-in and timestamp are not carried in the encrypted message. The watermark carries only: A/336 run_in and header; payload (with increased size); timestamp (encryption optional) with BCH error correction. This yields 400% bit error tolerance vs. SECDED. To enable ATSC compatibility, two watermark payloads should be defined; one with an encrypted timestamp and one cleartext.

Decision Response

“Watermark payload to match to (may include wildcards)” is replaced by: 1) Header (unencrypted): watermark_version; consortium_key_id; and random_number 2) Consortium encrypted block: validation; publisher_id; publisher_key_id; and random_number; 3) Publisher encrypted block: validation; ad_duration; and one or more payloads to match to.

The watermark payload is described in FIG. 3.

OAR participant features relate to both publishers and the TV. For publishers, the payload must be selected randomly to ensure low probability of collisions. Also, decisions applicable to multiple avails must be specified via payload list rather than wildcard. Timestamp encryption is optional. For the TV, decryption is applied to the encrypted message in the decision response instead of an encrypted watermark payload. Also, matched filtering is used for watermark payload detection. BCH error correction is used for timestamp payload detection.

It is understood that the various embodiments of the present invention may be implemented individually, or collectively, in devices comprised of various hardware and/or software modules and components. These devices, for example, may comprise a processor, a memory unit, an interface that are communicatively connected to each other, and may range from desktop and/or laptop computers, to consumer electronic devices such as media players, mobile devices and the like. For example, FIG. 4 illustrates a block diagram of a device 1000 within which the various disclosed embodiments may be implemented. The device 1000 comprises at least one processor 1002 and/or controller, at least one memory 1004 unit that is in communication with the processor 1002, and at least one communication unit 1006 that enables the exchange of data and information, directly or indirectly, through the communication link 1008 with other entities, devices and networks. The communication unit 1006 may provide wired and/or wireless communication capabilities in accordance with one or more communication protocols, and therefore it may comprise the proper transmitter/receiver antennas, circuitry and ports, as well as the encoding/decoding capabilities that may be necessary for proper transmission and/or reception of data and other information.

Referring back to FIG. 4 the device 1000 and the like may be implemented in software, hardware, firmware, or combinations thereof. Similarly, the various components or sub-components within each module may be implemented in software, hardware or firmware. The connectivity between the modules and/or components within the modules may be provided using any one of the connectivity methods and media that is known in the art, including, but not limited to, communications over the Internet, wired, or wireless networks using the appropriate protocols.

Various embodiments described herein are described in the general context of methods or processes, which may be implemented in one embodiment by a computer program product, embodied in a computer-readable medium, including computer-executable instructions, such as program code, executed by computers in networked environments. A computer-readable medium may include removable and non-removable storage devices including, but not limited to, Read Only Memory (ROM), Random Access Memory (RAM), compact discs (CDs), digital versatile discs (DVD), etc. Therefore, the computer-readable media that is described in the present application comprises non-transitory storage media. Generally, program modules may include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Computer-executable instructions, associated data structures, and program modules represent examples of program code for executing steps of the methods disclosed herein. The particular sequence of such executable instructions or associated data structures represents examples of corresponding acts for implementing the functions described in such steps or processes.

The foregoing description of embodiments has been presented for purposes of illustration and description. The foregoing description is not intended to be exhaustive or to limit embodiments of the present invention to the precise form disclosed, and modifications and variations are possible in light of the above teachings or may be acquired from practice of various embodiments. The embodiments discussed herein were chosen and described in order to explain the principles and the nature of various embodiments and its practical application to enable one skilled in the art to utilize the present invention in various embodiments and with various modifications as are suited to the particular use contemplated. The features of the embodiments described herein may be combined in all possible combinations of methods, apparatus, modules, systems, and computer program products. 

What is claimed is:
 1. A method of facilitating dynamic ad insertion in content comprising: assigning a default ad an identifying number, wherein the default ad is inserted into programming content at a splicing location in the programming content; linking the identifying number to a replacement ad; generating a watermark payload that includes the identifying number; embedding the content with the watermark payload; broadcasting the content to a client device; detecting the embedded watermark payload in the content using a client device; and inserting a replacement ad associated with the identifying number at the splicing location in the programming content.
 2. The method of claim 1 further comprising: counting bit mismatches between detected identifying number and an expected identifying number; and initiating the inserting if the count is below a threshold.
 3. The method of claim 2 wherein the identifying number is selected such that each number is statistically independent and uncorrelated from other identifying numbers.
 4. The method of claim 2 wherein the embedded watermark payload contains an owner ID and a channel ID.
 5. The method of claim 1 further comprising inserting a plurality of black frames at the beginning of the default ad.
 6. The method of claim 1 further comprising including information regarding when programming content will return.
 7. The method of claim 1 further comprising: embedding multiple video watermarks ahead of the splicing location, each video watermark carrying information about the timing of the splice point in addition to the identifying number.
 8. The method of claim 1 further comprising using video watermarks to carry the identifying number and timing information and using audio watermarks to identify the broadcast channel and address of a server associated with a broadcast channel.
 9. The method of claim 1 further comprising performing mutual authentication based on Transport Layer Security (TLS) protocol using a DAI client in a terminal device and DAI decisioning servers.
 10. The method of claim 1 further comprising: embedding the default ad with watermarks throughout its duration; and using the receiver device to determine whether there has been a loss of continued watermark detection, whereby user action upstream of the receiver device is detected.
 11. The method of claim 1 further comprising detecting overlays and terminating the display of the replacement ad upon such detection.
 12. The method of claim 11 wherein detecting overlays comprises: comparing video fingerprints extracted upstream of a set top box with video fingerprints extracted from a television; and terminating the replacement ad upon the detection of differences between the video fingerprints.
 13. The method of claim 11 wherein identifying number is not linked to any replacement ad, wherein a decoy watermark is created.
 14. The method of claim 12 wherein detecting further comprises ignoring the identifying number that is not linked to any replacement ad.
 15. A device comprising: a first processor; and a first memory comprising processor executable code, the processor executable code when executed by the processor causes the device to: assign a default ad an identifying number, wherein the default ad is inserted into programming content at a splicing location in the programming content; link the identifying number to a replacement ad; generate a watermark payload that includes the identifying number; embed the content with the watermark payload; broadcast the content to a client device; detect the embedded watermark payload in the content using a client device; and insert a replacement ad associated with the identifying number at the splicing location in the programming content.
 16. A computer program product, embodied on one or more computer readable media and comprising: program code for assigning a default ad an identifying number, wherein the default ad is inserted into programming content at a splicing location in the programming content that is implemented at least partially in hardware; program code for linking the identifying number to a replacement ad that is implemented at least partially in hardware; program code for generating a watermark payload that includes the identifying number that is implemented at least partially in hardware; program code for embedding the content with the watermark payload that is implemented at least partially in hardware; program code for broadcasting the content to a client device that is implemented at least partially in hardware; program code for detecting the embedded watermark payload in the content using a client device that is implemented at least partially in hardware; and program code for inserting a replacement ad associated with the identifying number at the splicing location in the programming content that is implemented at least partially in hardware. 